Computer networks generally comprise various interconnected computing devices that can exchange data. Computing devices in a computer network can be in direct communication with one or more other computing devices. Each direct communication connection between computing devices in a computer network is generally referred to as a network link, or a link. While a computer network is generally made up of a number of links, computing devices in a computer network do not typically include links to every other computing device in the computer network. Rather, data to be exchanged between computing devices can be subdivided into packets and propagated via the computer network to eventually reach an intended recipient, regardless of whether there is a direct link between the sender and recipient.
More specifically, packets of data are typically transmitted from an origin computing device to an identified destination computing device. If a packet of data is received by a computing device that is not the identified destination computing device, the receiving computing device becomes an intermediary in the communication path between the origin computing device and the destination computing device by forwarding the packet to another computing device in the computer network. Accordingly, each packet of data is transmitted through one or a series of intermediate links in the computer network until the packet reaches its destination computing device. The one or more links for delivery of a packet of data between an origin computing device and a destination computing device is generally referred to as a network path, or a path.
At each computing device in a communication network, an independent decision may be made regarding the path to the identified destination computing device for each received data packet. Each computing device can use several factors for making the decision regarding the path to the identified destination. For example, in some networks, portions of the destination address included in the data packet may be used to compare to a lookup table on the computing device. Based on the independent decision, a receiving computing device transmits a received data packet on the next intermediate link in the path.
Indications of total traffic on any one link in the network may be obtained by measuring packets transmitted or received on the two computing devices connected by that link. As networks become increasingly complex, network operators may desire to obtain information regarding the performance of paths in the network, rather than indications of total traffic on individual links. The performance of paths in the network may include a view of the interconnection between all the computing devices in the network. Performance of the paths may also include indications of network availability or failures, which may include an indication of dropped or lost packets, an indication of service degradation, or even of a network halt due to excessive traffic.
In some cases, the computer network may be part of a network operated as a data center. Operators of data centers generally wish to ensure the highest availability possible for their network at the lowest cost possible. Problems relating to network failures affect the operators' overall costs. The operators typically wish to be able to accurately estimate the impact of the network failures. For example, in some situations, several different components in the network may be affected by the same cause of failure. In other situations, several causes of failures may affect the same network component. In either of these circumstances, a network failure should be detected. As another example, some failures may demonstrate high packet loss but may be confined to a small number of devices, while other failures may demonstrate low packet loss, but be confined to a large number of devices. The data center operators wish to identify the impact of all types of failures.